package LintCode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 数列的定义如下： 数列的第一项为n，以后各项为前一项的平方根，求数列的前m项的和。
 *
 * 输入描述
 * 输入数据有多组，每组占一行，由两个整数n（n<10000）和m(m<1000)组成，n和m的含义如前所述。
 *
 * 输出描述
 * 对于每组输入数据，输出该数列的和，每个测试实例占一行，要求精度保留2位小数。
 *
 * 样例输入
 * 81 4
 * 2 2
 *
 * 样例输出
 * 94.73
 * 3.41
 */

public class XiaoMi {
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        XiaoMi mi = new XiaoMi();
        List<Double> list_Double = new ArrayList<Double>();
        while(true){
            String s = input.nextLine();
            if(s.equals(""))break;//当读取到的字符串为空时，退出循环
            int []array = mi.getMN(s);
            int n = array[0];
            int m = array[1];
            list_Double.add(mi.solve(n,m));
        }

        for (double b:list_Double) {
            //System.out.printf("%.2f\n",b);//printf("%.2f\n",doublee)保留两位小数输出；四舍五入
            System.out.format("%.2f\n",b);//四舍五入

            /*String s = String.format("%.2f", b);//四舍五入
            System.out.println( s );*/

            DecimalFormat c = new DecimalFormat(".00");
            System.out.println(c.format(b));

        }


    }

    private int[] getMN(String str){//将输入的一行数据中的n、m区分开来
        String [] array = str.split(" ");
        int []mn = new int[2];
        mn[0] = Integer.parseInt(array[0]);
        mn[1] = Integer.parseInt(array[1]);
        return mn;
    }

    private double solve(double n , int m){
        double answer = 0;
        while( m-- > 0 ){
            n = Math.sqrt(n);
            answer += n;
        }

        return answer;
    }
}
